{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Usage of `inputs` module"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "import brainpy as bp"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## constant_current"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`constant_current()` function helps you to format constant current in several periods.\n",
    "\n",
    "For example, if you want to get an input in which 0-100 ms is zero, 100-400 ms is value `1.`, \n",
    "and 400-500 ms is zero, then, you can define:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "lines_to_next_cell": 0
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "current, duration = bp.inputs.constant_current([(0, 100), (1, 300), (0, 100)], 0.1)\n",
    "\n",
    "fig, gs = bp.visualize.get_figure(1, 1)\n",
    "fig.add_subplot(gs[0, 0])\n",
    "ts = np.arange(0, duration, 0.1)\n",
    "plt.plot(ts, current)\n",
    "plt.title('[(0, 100), (1, 300), (0, 100)]')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Another example is this:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "current, duration = bp.inputs.constant_current([(-1, 10), (1, 3), (3, 30), (-0.5, 10)], 0.1)\n",
    "\n",
    "fig, gs = bp.visualize.get_figure(1, 1)\n",
    "fig.add_subplot(gs[0, 0])\n",
    "ts = np.arange(0, duration, 0.1)\n",
    "plt.plot(ts, current)\n",
    "plt.title('[(-1, 10), (1, 3), (3, 30), (-0.5, 10)]')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## spike_current"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`spike_current()` function helps you to construct an input like a series of short-time spikes."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "points, length, size, duration, _dt = [10, 20, 30, 200, 300], 1., 0.5, 1000, 0.1\n",
    "current = bp.inputs.spike_current(points, length, size, duration, _dt)\n",
    "\n",
    "fig, gs = bp.visualize.get_figure(1, 1)\n",
    "fig.add_subplot(gs[0, 0])\n",
    "ts = np.arange(0, duration, _dt)\n",
    "plt.plot(ts, current)\n",
    "plt.title(r'points=%s, duration=%d' % (points, duration))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In the above example, at 10 ms, 20 ms, 30 ms, 200 ms, 300 ms, the assumed neuron produces spikes. Each spike \n",
    "lasts 1 ms, and the spike current is 0.5."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## ramp_current"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, gs = bp.visualize.get_figure(2, 1)\n",
    "\n",
    "duration, _dt = 1000, 0.1\n",
    "current = bp.inputs.ramp_current(0, 1, duration)\n",
    "\n",
    "ts = np.arange(0, duration, _dt)\n",
    "fig.add_subplot(gs[0, 0])\n",
    "plt.plot(ts, current)\n",
    "plt.title(r'$c_{start}$=0, $c_{end}$=%d, duration, dt=%.1f, '\n",
    "          r'$t_{start}$=0, $t_{end}$=None' % (duration, _dt,))\n",
    "\n",
    "duration, _dt, t_start, t_end = 1000, 0.1, 200, 800\n",
    "current = bp.inputs.ramp_current(0, 1, duration, t_start, t_end)\n",
    "\n",
    "ts = np.arange(0, duration, _dt)\n",
    "fig.add_subplot(gs[1, 0])\n",
    "plt.plot(ts, current)\n",
    "plt.title(r'$c_{start}$=0, $c_{end}$=1, duration=%d, dt=%.1f, '\n",
    "          r'$t_{start}$=%d, $t_{end}$=%d' % (duration, _dt, t_start, t_end))\n",
    "\n",
    "plt.show()\n"
   ]
  }
 ],
 "metadata": {
  "jupytext": {
   "formats": "ipynb,py:light"
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": false,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
